<?php
/**
 * UserController - Obsluha přihlášování, odhlašování
 *
 * @author Petr Laslo
 * @license MIT License
 * @package Knihovna\Controllers
 * @link https://code.google.com/p/knihovna/
 */
class UserController extends Zend_Controller_Action
{
    /**
     * Přihlášení uživatele
     *
     * @author Petr Laslo
     */
    public function loginAction()
    {
        //Načte formulář pro přihlášení
        $form  = new Knihovna_Form_Login();

        if ($this->getRequest()->isPost() && (false !== $this->getRequest()->getPost('submit_login', false))) {

            if ($form->isValid($this->getRequest()->getPost())) {
                $bootstrap = $this->getInvokeArg('bootstrap');
                $db = $bootstrap->getResource('db');
                try{
                    $authAdapter = new Zend_Auth_Adapter_DbTable($db, 'users', 'username', 'passwd','MD5(?)');

                    $post = $form->getValues();

                    $authAdapter->setIdentity($post['user_name']);
                    $authAdapter->setCredential($post['user_password']);

                    $result = Zend_Auth::getInstance()->authenticate($authAdapter);
                    if (!$result->isValid()) {
                        Zend_Auth::getInstance()->clearIdentity();

                        $form->getElement('user_name')->addError('Špatné uživatelské jméno nebo heslo.');
                        $form->getElement('user_password')->addError('Špatné uživatelské jméno nebo heslo.');
                    } else {
                        $identity = $authAdapter->getResultRowObject(
                            null, array('user_password')
                        );
                        Zend_Auth::getInstance()->getStorage()->write($identity);
                        $this->_redirect('/');
                    }
                }catch(Exception $error){
                    echo $error->getMessage();
                }
            }
        }


        $this->view->form = $form;
    }
    /**
     * Odhlášení uživatele
     *
     * @author Petr Laslo
     */
    public function logoutAction()
    {
        Zend_Auth::getInstance()->clearIdentity();
        $this->_redirect('/');
    }
    /**
     * Zapomenuté heslo
     *
     * @author Petr Laslo
     */
    public function forgotAction()
    {

    }

}
